#include<iostream>
#include<string.h>
using namespace std;
int sum[200005];
int a[200005];
int main(){
int n;
cin >> n;
for(int i = 1; i <= n; i ++){
scanf("%d",&a[i]);
}
char s[200005];
scanf("%s",s + 1);
int l = strlen(s + 1);
for(int i = 1; i <= l; i ++){
sum[i] = sum[i - 1] + s[i] - '0';
}
for(int i = 1; i <= n; i ++){
if(a[i] > i){
if(sum[a[i] - 1] - sum[i - 1] == (a[i] - i))
continue;
else{
puts("NO");
return 0;
}
}
if(a[i] < i){
if(sum[i - 1] - sum[a[i] - 1] == (i - a[i]))
continue;
else{
puts("NO");
return 0;
}
}
}
puts("YES");
return 0;
}
1566A - Median Maximization | 1278A - Shuffle Hashing |
1666F - Fancy Stack | 1354A - Alarm Clock |
1543B - Customising the Track | 1337A - Ichihime and Triangle |
1366A - Shovels and Swords | 919A - Supermarket |
630C - Lucky Numbers | 1208B - Uniqueness |
1384A - Common Prefixes | 371A - K-Periodic Array |
1542A - Odd Set | 1567B - MEXor Mixup |
669A - Little Artem and Presents | 691B - s-palindrome |
851A - Arpa and a research in Mexican wave | 811A - Vladik and Courtesy |
1006B - Polycarp's Practice | 1422A - Fence |
21D - Traveling Graph | 1559B - Mocha and Red and Blue |
1579C - Ticks | 268B - Buttons |
898A - Rounding | 1372B - Omkar and Last Class of Math |
1025D - Recovering BST | 439A - Devu the Singer and Churu the Joker |
1323A - Even Subset Sum Problem | 1095A - Repeating Cipher |